package fiuba.webapp.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import fiuba.model.Busqueda;
import fiuba.model.Configuracion;
import fiuba.model.Estructura;
import fiuba.model.Seccion;
import fiuba.service.BusquedaManager;
import fiuba.service.EstructuraManager;
import fiuba.service.GenericManager;
import fiuba.service.MenuManager;

public class VerBusquedaAction extends BaseAction {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5598915103269460445L;
	
    private String html;
    private String headHtml;
    private String tituloPagina;
    private String id;
    private String query;
	private EstructuraManager estructuraManager;
	private GenericManager<Configuracion,Long> configuracionManager;
    private BusquedaManager busquedaManager;
    private int page = 0;
    private String pag = "";
	public String getPag() {
		return pag;
	}
	public void setPag(String pag) {
		this.pag = pag;
	}
	public int getPage() {
		return page;
	}
	public void setPage(int page) {
		this.page = page;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getQuery() {
		return query;
	}
	public void setQuery(String query) {
		this.query = query;
	}
	public EstructuraManager getEstructuraManager() {
		return estructuraManager;
	}
	public void setEstructuraManager(EstructuraManager estructuraManager) {
		this.estructuraManager = estructuraManager;
	}
	public GenericManager<Configuracion, Long> getConfiguracionManager() {
		return configuracionManager;
	}
	public void setConfiguracionManager(
			GenericManager<Configuracion, Long> configuracionManager) {
		this.configuracionManager = configuracionManager;
	}
	public BusquedaManager getBusquedaManager() {
		return busquedaManager;
	}
	public void setBusquedaManager(BusquedaManager busquedaManager) {
		this.busquedaManager = busquedaManager;
	}
	
	public String ver() {
		Configuracion config = this.configuracionManager.get(1L);
		this.tituloPagina = config.getPageTitle();
		this.headHtml = estructuraManager.generateHeadHtml(config);

		// Cargamos todos los datos necesarios
		Busqueda busq = this.busquedaManager.get(Long.parseLong(this.id));
    	Estructura estructura = busq.getSeccionBusqueda().getEstructura();
    	if (! this.pag.equals("") ) {
    		try {
    			page = Integer.parseInt(this.pag);
    		}
    		catch (Exception e) {
    			page = 0;
    		}
    	}
		if (page == 0) page = 1;
    	String htmlBusqueda = this.busquedaManager.generateHtml(busq, query, page);
    	
		HttpServletRequest request = this.getRequest(); 
		String remoteIp = request.getRemoteAddr(); 
    	// Generamos el HTML
    	this.html = estructuraManager.generateHtml(estructura, 
    			htmlBusqueda,
    			busq.getSeccionBusqueda().getMenu(),
    			remoteIp);
    	return SUCCESS;
	}
	public String getHtml() {
		return html;
	}
	public void setHtml(String html) {
		this.html = html;
	}
	public String getHeadHtml() {
		return headHtml;
	}
	public void setHeadHtml(String headHtml) {
		this.headHtml = headHtml;
	}
	public String getTituloPagina() {
		return tituloPagina;
	}
	public void setTituloPagina(String tituloPagina) {
		this.tituloPagina = tituloPagina;
	}

}
